linux/x86-64 2.6.18: reserve bootmem differently
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Mon, 5 Mar 2007 15:08:17 +0000 (15:08 +0000)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Mon, 5 Mar 2007 15:08:17 +0000 (15:08 +0000)
Do init memory reservation in a single step rather then piece-wise.
This is not really addressing a problem, but simplifies things a
little.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c

index 7410cf6574fbf69156bc0ab7eb0b9e1d68955260..f286359fd1f448db97e4eeec89d6f823a04aa559 100644 (file)
@@ -691,6 +691,14 @@ void __init setup_arch(char **cmdline_p)
        contig_initmem_init(0, end_pfn);
 #endif
 
+#ifdef CONFIG_XEN
+       /*
+        * Reserve kernel, physmap, start info, initial page tables, and
+        * direct mapping.
+        */
+       reserve_bootmem_generic(__pa_symbol(&_text),
+                               (table_end << PAGE_SHIFT) - __pa_symbol(&_text));
+#else
        /* Reserve direct mapping */
        reserve_bootmem_generic(table_start << PAGE_SHIFT, 
                                (table_end - table_start) << PAGE_SHIFT);
@@ -699,12 +707,6 @@ void __init setup_arch(char **cmdline_p)
        reserve_bootmem_generic(__pa_symbol(&_text),
                                __pa_symbol(&_end) - __pa_symbol(&_text));
 
-#ifdef CONFIG_XEN
-       /* reserve physmap, start info and initial page tables */
-       reserve_bootmem_generic(__pa_symbol(&_end),
-                               (table_start << PAGE_SHIFT) -
-                               __pa_symbol(&_end));
-#else
        /*
         * reserve physical page 0 - it's a special BIOS page on many boxes,
         * enabling clean reboots, SMP operation, laptop functions.